package com.bruce.springai.component;

import java.util.List;

import org.springframework.ai.document.Document;
import org.springframework.ai.transformer.splitter.TokenTextSplitter;
import org.springframework.stereotype.Component;

/**
 * token 分割器
 */
@Component
public class MyTokenTextSplitter {
    public List<Document> splitDocuments(List<Document> documents) {
        TokenTextSplitter splitter = new TokenTextSplitter();
        return splitter.apply(documents);
    }

    public List<Document> splitCustomized(List<Document> documents) {
        TokenTextSplitter splitter = new TokenTextSplitter(
            1000  //    每个文本块的目标大小（以 tokens 为单位）（默认值：800）
        , 400  //每个文本块的最小大小（以字符为单位）（默认值：350）
        , 100  // 要包含的 chunk 的最小长度（默认值：5）
        , 50  //从文本生成的最大块数（默认值：10000）
        , true);
        return splitter.apply(documents);
    }
}
